<?php

/**
 * Description of VehiclesController
 *
 * @author Nylaye
 */
class Reports_VehiclesController extends Reports_ReportController
{
    /**
     *
     * @var DefaultDb_Entities_Vehicle
     */
    private $_vehicle = null;

    public function init()
    {
        parent::init();
    }

    /**
     * Checamos si el vehículo identificado por su id existe. SI existe retornamos
     * el objeto vehiculo, si no existe entonces redireccionamos para mostrar un
     * error y retornamos false.
     * @param type $id Id del vehículo
     * @return boolean true si el vehículo existe, false en otros casos.
     */
    private function validVehicle($id)
    {
        $vehiclesRepository = $this->_em->getRepository('DefaultDb_Entities_Vehicle');
        $vehicle = $vehiclesRepository->findBy(array('id' => $id));
        if ($vehicle instanceof DefaultDb_Entities_Vehicle)
        {
            $this->_vehicle = $vehicle;
            return true;
        }
        $this->redirect('Reports/Report/invalid');
        return false;
    }

    public function listAction()
    {
        
    }

    public function failAction()
    {
        $reportsVehiclesRepository = $this->_em->getRepository('DefaultDb_Entities_ReportVehicle');

        $vehicleId = $this->getRequest()->getParam('id');
        if (is_null($vehicleId) === false)
        {
            if ($this->validVehicle($vehicleId) === false)
            {
                return;
            }
        }
        else
        {
            $this->_data = $reportsVehiclesRepository->reportFails($vehicleId);
        }
        $this->view->title = 'Incidencias de vehículos';
    }

}